package com.teradata.singleton.lazy;

/**
 * 第二种（懒汉，线程安全）
 * 这种写法能够在多线程中很好的工作，而且看起来它也具备很好的lazy loading，但是，遗憾的是，效率很低，99%情况下不需要同步。
 */
public class LazybonesSafeSingleton {
    //1.建立私有化单例类型成员变量
    private static LazybonesSafeSingleton instance;

    //2.建立私有化空参构造器
    private LazybonesSafeSingleton() {
    }

    //3.建立静态方法,返回单例实例
    public static synchronized LazybonesSafeSingleton getInstance() {
        if (instance == null) {
            instance = new LazybonesSafeSingleton();
        }
        return instance;
    }
}
